﻿using System;
using System.Collections.Generic;

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using WLMCoreLibrary;
using MiWebSite_Core;
using Newtonsoft.Json;

namespace MWS_Blog
{
    public partial class itemDetail : System.Web.UI.Page
    {

        WebSiteMainConfiguration config = WebSiteMainConfiguration.GetConfig();
        dbConnector ConexionDB;
        protected void Page_Load(object sender, EventArgs e)
        {

            if (Request.QueryString["xml"] != null)
            {
                GetPageXML();
            }
            else
                TransformXML(GeneratePage());

        }

        private MiWebSitePage GeneratePage()
        {
            ConexionDB = new dbConnector(config.Connections[0].value);
            MiWebSitePage pagina = new MiWebSitePage();
            try
            {
                pagina = new MiWebSitePage(ref ConexionDB);
                MiWebSiteFunctions.LoadIncludesWebSite(pagina);
                if (CurrentUser.IdUsuario != 0)
                {
                    MiWebSiteFunctions.LoadIncludesWebSiteAdmin(pagina);
                    BlogFunctions.LoadIncludesAdmin(pagina);
                }
                int dia = Convert.ToInt32(Request["dia"]);
                int mes = Convert.ToInt32(Request["mes"]);
                int ano = Convert.ToInt32(Request["ano"]);
                string titulo = Request["titulo"];
                titulo = MiWebSiteFunctions.tituloaPostName(titulo);                
                MiWebSiteBlogEntry blogEntry = new MiWebSiteBlogEntry(titulo, ref ConexionDB);

                if (blogEntry.fechaCreacion.Year == ano && blogEntry.fechaCreacion.Month == mes && blogEntry.fechaCreacion.Day == dia)
                {
                    pagina.Title = blogEntry.titulo + " - " + pagina.Title;
                    blogEntry.CargarRelacionados();
                }
                else
                {
                    blogEntry = new MiWebSiteBlogEntry();
                    blogEntry.fechaCreacion = DateTime.Now;
                    blogEntry.titulo = "Post No Encontrado";
                    blogEntry.contenido = "debe haber un error con la url del post";
                }


                
                pagina.Contenido = WLMFunctions.SerializeObject(blogEntry);

            }
            catch (Exception ex)
            {

            }
            ConexionDB.CloseConnection();
            return pagina;
        }

        private void TransformXML(MiWebSitePage pagina)
        {
            List<ParametroTransformacionXML> parametros = new List<ParametroTransformacionXML>();
            parametros.Add(new ParametroTransformacionXML("isMobile", MiWebSiteFunctions.isMobileBrowser().ToString().ToLower()));
            parametros.Add(new ParametroTransformacionXML("skinPath", config.Settings["skinPath"].value));
            
            string HTMLPagina = WLMFunctions.TransformXML(pagina, config.Settings["siteURL"].value + config.Settings["skinPath"].value + "index.xsl", parametros);
            Response.Write(HTMLPagina);
            Response.End();
        }

        private void GetPageXML()
        {
            Response.Clear();
            Response.ContentType = "text/xml";
            Response.HeaderEncoding =System.Text.Encoding.UTF8;
            string xmlportada = WLMFunctions.SerializeObject(GeneratePage(), true);
            Response.Write(xmlportada);
            Response.End();


        }
        
    }
}